package com.dtp.common.entity;

import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 线程池状态
 *
 * @author yanhom
 * @since 1.0.0
 *
 * @remark muse
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
public class ThreadPoolStats extends Metrics {
    private String poolName;            // 线程池名称
    private int corePoolSize;           // 核心线程池数量
    private int maximumPoolSize;        // 最大线程池数量
    private String queueType;           // 阻塞队列类型
    private int queueCapacity;          // 队列容量
    private int queueSize;              // 队列任务数量
    private boolean fair;               // SynchronousQueue队列模式
    private int queueRemainingCapacity; // 队列剩余容量
    private int activeCount;            // 活跃线程数量
    private long taskCount;             // 大致任务总数
    private long completedTaskCount;    // 已执行完成的大致任务总数
    private int largestPoolSize;        // 池中曾经同时存在的最大线程数量
    private int poolSize;               // 当前池中存在的线程总数
    private int waitTaskCount;          // 等待执行的任务数量
    private long rejectCount;           // 等待执行的任务数量
    private String rejectHandlerName;   // 拒绝策略名称
    private boolean dynamic;            // 是否是DtpExecutor线程池
    private long runTimeoutCount;       // 是否DtpExecutor线程池
    private long queueTimeoutCount;     // 在队列等待超时任务数量
}
